#!/bin/bash
# ===== Log =====
# log.info xxx
# log.warn xxx
# log.info xxx
# log.debug xxx
# 带颜色的echo
function log.color_output() {
    local color=$1
    shift 1

    echo >&2 -e "\033[${color}m$@\033[0m"
    return 0
}

# Log is named without prefix "utils." for convenience
# Usage: log.log <level> ...content
function log.log() {
    if [[ $# < 2 ]]; then
        return -1
    fi

    local level=$1
    shift 1

    case $level in
    error) log.color_output "0;31" "[ERROR] $@" ;;
    warn) log.color_output "1;33" "[WARN] $@" ;;
    info) log.color_output "1;37" "[INFO] $@" ;;
    debug) log.color_output "1;30" "[DEBUG] $@" ;;
    esac

    return 0
}

function log.error() { log.log "error" "$@"; }
function log.warn() { log.log "warn" $@; }
function log.info() { log.log "info" $@; }
function log.debug() { log.log "debug" $@; }



function do_integrate(){
local file=$1
    if [ -f "$file" ]; then
    	exec_line=$(grep "^Exec=" "$file")
    	# 检查是否是@EXEC_NAME@
    	if [[ $exec_line != Exec="@EXEC_NAME@ "* ]]; then
    		echo "$file is detected. Processing host system integration..."
    		sed -i 's|^Exec=\(.*\)|Exec=@EXEC_NAME@ \1|' "$file"
        	sed -i '/^TryExec=/d' "$file"
        	sed -i '/^Name=/ s/$/ (@PRETTY_NAME@)/' "$file"
            	sed -i "/^Name\[${LANGUAGE}\]=/ s/\$/ (@PRETTY_NAME@)/" "$file"
            	icon_line=$(grep "^Icon=" "$file")
            	if [[ "$icon_line" == "Icon=/"* ]]; then
    			# 如果Icon=后面接的是/，则添加前缀
    			sed -i 's|^Icon=/|Icon=/opt/apps/@PKG_NAME@/files/ace-env/|' "$file"
    		fi
		
    	fi
    
    fi
    chmod +x $file
}

if [  "${IS_ACE_ENV}" != "" ] ;then
	if [ -e /opt/apps/ ];then
	for app_dir in $(ls /opt/apps/); do
		for file in /opt/apps/$app_dir/entries/applications/*.desktop;do
		do_integrate $file

	
		done
	done
	else
	log.warn "No /opt/apps directory. Skip..."
	fi
	
for file in /usr/share/applications/*.desktop; do
do_integrate $file
done
find "/usr/share/applications/" -xtype l -delete

else

log.error "DO NOT run me on host OS"
fi
